package com.woniuxy.lab.woniu_lab_boss.service.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 实验表
 * </p>
 *
 * @author Silas
 * @since 2023-03-15
 */
@Data
@ApiModel("实验详情")
public class ExperDto implements Serializable {

    /**
     * id
     */
    @ApiModelProperty(value = "实验ID", example = "1")
    private Integer id;

    /**
     * 实验编号
     */
    @ApiModelProperty(value = "实验编号", example = "111")
    private String no;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id", example = "1")
    private Integer userId;

    @ApiModelProperty(value = "用户昵称", example = "lucas")
    private String nickname;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", example = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 靶场id
     */
    @ApiModelProperty(value = "靶场ID", example = "1")
    private Integer rangeId;

    /**
     * 答案
     */
    @ApiModelProperty(value = "答案", example = "1")
    private String flag;

    /**
     * 实验运行状态(RUNNING/CLOSE)
     */
    @ApiModelProperty(value = "实验运行状态", example = "CLOSE")
    private String status;

    /**
     * 实验结果(SUCCESS/FAIL)
     */
    @ApiModelProperty(value = "实验结果", example = "SUCCESS")
    private String result;

    /**
     * 积分
     */
    @ApiModelProperty(value = "通过可获得积分", example = "3")
    private Integer score;

    /**
     * 实验环境ID
     */
    @ApiModelProperty(value = "实验环境ID（容器ID）", example = "1")
    private String containerId;

    /**
     * 外部端口号
     */
    @ApiModelProperty(value = "外部端口号", example = "8080")
    private String portOuter;

    /**
     * 内部端口号
     */
    @ApiModelProperty(value = "内部端口号", example = "8888")
    private String portInner;

    /**
     * 外部卷
     */
    @ApiModelProperty(value = "外部卷", example = "XX/XX")
    private String volumeOuter;

    /**
     * 内部卷
     */
    @ApiModelProperty(value = "内部卷", example = "xx/xx")
    private String volumeInner;

    /**
     * 实验类型CTF/EXPER
     */
    @ApiModelProperty(value = "实验类型", example = "EXPER")
    private String ctfOrExper;

    /**
     * 文件路径
     */
    @ApiModelProperty(value = "文件路径", example = "xx/xx")
    private String filePath;

    /**
     * 实验方式(文件下载/环境启动 FILE/DOCKER)
     */
    @ApiModelProperty(value = "实验方式", example = "FILE")
    private String fileOrDocker;

    /**
     * 域名 host
     */
    @ApiModelProperty(value = "域名", example = "host")
    private String link;


}
